<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../style.css" type="text/css" media="screen">
<link rel="stylesheet" href="../print.css" type="text/css" media="print">
<meta content="UndoRedoHistory,nimbus.UndoRedoHistory,cursorPosition,history,maxUndos,redosAvailable,undosAvailable,addCommand,clipForMaxUndos,redo,undo" name="keywords">
<title>nimbus.UndoRedoHistory</title>
</head>
<body>
<script type="text/javascript" language="javascript" src="../asdoc.js"></script><script type="text/javascript" language="javascript" src="../cookies.js"></script><script type="text/javascript" language="javascript">
<!--
				asdocTitle = 'UndoRedoHistory - Nimbus';
				var baseRef = '../';
				window.onload = configPage;
			--></script>
<table style="display:none" id="titleTable" cellspacing="0" cellpadding="0" class="titleTable">
<tr>
<td align="left" class="titleTableTitle">Nimbus</td><td align="right" class="titleTableTopNav"><a onclick="loadClassListFrame('../all-classes.html')" href="../package-summary.html">All&nbsp;Packages</a>&nbsp;|&nbsp;<a onclick="loadClassListFrame('../all-classes.html')" href="../class-summary.html">All&nbsp;Classes</a>&nbsp;|&nbsp;<a onclick="loadClassListFrame('../index-list.html')" href="../all-index-A.html">Index</a>&nbsp;|&nbsp;<a href="../index.html?nimbus/UndoRedoHistory.html&amp;nimbus/class-list.html" id="framesLink1">Frames</a><a onclick="parent.location=document.location" href="" style="display:none" id="noFramesLink1">No&nbsp;Frames</a></td><td rowspan="3" align="right" class="titleTableLogo"><img alt="Adobe Logo" title="Adobe Logo" class="logoImage" src="../images/logo.jpg"></td>
</tr>
<tr class="titleTableRow2">
<td align="left" id="subTitle" class="titleTableSubTitle">Class&nbsp;UndoRedoHistory</td><td align="right" id="subNav" class="titleTableSubNav"><a href="#propertySummary">Properties</a>&nbsp;| <a href="#methodSummary">Methods</a>&nbsp;| <a href="#eventSummary">Events</a></td>
</tr>
<tr class="titleTableRow3">
<td colspan="2">&nbsp;</td>
</tr>
</table>
<script type="text/javascript" language="javascript">
<!--
if (!isEclipse() || window.name != ECLIPSE_FRAME_NAME) {titleBar_setSubTitle("Class UndoRedoHistory"); titleBar_setSubNav(false,true,false,false,true,false,true,false,false,false,false,false,false,false);}
--></script>
<div class="MainContent">
<table cellspacing="0" cellpadding="0" class="classHeaderTable">
<tr>
<td class="classHeaderTableLabel">Package</td><td><a onclick="javascript:loadClassListFrame('class-list.html')" href="package-detail.html">nimbus</a></td>
</tr>
<tr>
<td class="classHeaderTableLabel">Class</td><td class="classSignature">public class UndoRedoHistory</td>
</tr>
<tr>
<td class="classHeaderTableLabel">Inheritance</td><td class="inheritanceList">UndoRedoHistory <img class="inheritArrow" alt="Inheritance" title="Inheritance" src="../images/inherit-arrow.gif"> flash.events.EventDispatcher</td>
</tr>
</table>
<p></p>
  Manages the history of executed commands and provides the ability to undo or redo command
  execution.  In order for a command to be managed for undo/redo, it must implement
  IUndoableCommand.  On an undo, the undo() method of the command is
  called.  On a redo, the execute() method is called.  
  
  <p>Unlike normal execution, when an undo or redo is called and the command is an AsynCommand,
  the controller does not wait for the command to dispatch an ExecutionEvent before it
  dispatches its own ExecutionEvent. The controller also does not incorporate certain features
  such as user interaction blocking or processing message updating during an undo/redo.</p>
  
  <p></p>
<p>
<span class="classHeaderTableLabel">See also</span>
</p>
<div class="seeAlso">
<a href="commands/base/IUndoableCommand.html" target="">nimbus.commands.base.IUndoableCommand</a>
<br>
<a href="nimbus/Controller.html#undo()" target="">nimbus.Controller.undo()</a>
<br>
<a href="nimbus/Controller.html#redo()" target="">nimbus.Controller.redo()</a>
<br>
<a href="nimbus/Controller.html#undosAvailable" target="">nimbus.Controller.undosAvailable</a>
<br>
<a href="nimbus/Controller.html#redosAvailable" target="">nimbus.Controller.redosAvailable</a>
<br>
<a href="nimbus/Controller.html#maxUndos" target="">nimbus.Controller.maxUndos</a>
</div>
<br>
<hr>
</div>
<a name="propertySummary"></a>
<div class="summarySection">
<div class="summaryTableTitle">Public Properties</div>
<table id="summaryTableProperty" class="summaryTable " cellpadding="3" cellspacing="0">
<tr>
<th>&nbsp;</th><th colspan="2">Property</th><th class="summaryTableOwnerCol">Defined&nbsp;by</th>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><a class="signatureLink" href="#maxUndos">maxUndos</a> : uint<div class="summaryTableDescription">
   The maximum number of undoable commands that will be stored in the history.</div>
</td><td class="summaryTableOwnerCol">UndoRedoHistory</td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><a class="signatureLink" href="#redosAvailable">redosAvailable</a> : uint<div class="summaryTableDescription">[read-only]
   The number of commands currently available for redo.</div>
</td><td class="summaryTableOwnerCol">UndoRedoHistory</td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><a class="signatureLink" href="#undosAvailable">undosAvailable</a> : uint<div class="summaryTableDescription">[read-only]
   The number of commands currently available for undo.</div>
</td><td class="summaryTableOwnerCol">UndoRedoHistory</td>
</tr>
</table>
</div>
<a name="protectedPropertySummary"></a>
<div class="summarySection">
<div class="summaryTableTitle">Protected Properties</div>
<table id="summaryTableProtectedProperty" class="summaryTable " cellpadding="3" cellspacing="0">
<tr>
<th>&nbsp;</th><th colspan="2">Property</th><th class="summaryTableOwnerCol">Defined&nbsp;by</th>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><a class="signatureLink" href="#cursorPosition">cursorPosition</a> : int = 0<div class="summaryTableDescription">
   Retains the current position in the undo/redo history.</div>
</td><td class="summaryTableOwnerCol">UndoRedoHistory</td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol"><a class="signatureLink" href="#history">history</a> : Array<div class="summaryTableDescription">
   Contains a history of commands that have been executed and are elegible for undo/redo.</div>
</td><td class="summaryTableOwnerCol">UndoRedoHistory</td>
</tr>
</table>
</div>
<a name="methodSummary"></a>
<div class="summarySection">
<div class="summaryTableTitle">Public Methods</div>
<table id="summaryTableMethod" class="summaryTable " cellpadding="3" cellspacing="0">
<tr>
<th>&nbsp;</th><th colspan="2">Method</th><th class="summaryTableOwnerCol">Defined&nbsp;by</th>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#addCommand()">addCommand</a>(command:<a href="commands/base/IUndoableCommand.html">IUndoableCommand</a>):void</div>
<div class="summaryTableDescription">
   Called after a command has been executed by the controller and adds it to the undo
   history.</div>
</td><td class="summaryTableOwnerCol">UndoRedoHistory</td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#redo()">redo</a>():<a href="commands/base/IUndoableCommand.html">IUndoableCommand</a>
</div>
<div class="summaryTableDescription">
   Determines the next redoable command and performs a redo operation.</div>
</td><td class="summaryTableOwnerCol">UndoRedoHistory</td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#undo()">undo</a>():<a href="commands/base/IUndoableCommand.html">IUndoableCommand</a>
</div>
<div class="summaryTableDescription">
   Determines the next undoable command and performs an undo operation.</div>
</td><td class="summaryTableOwnerCol">UndoRedoHistory</td>
</tr>
</table>
</div>
<a name="protectedMethodSummary"></a>
<div class="summarySection">
<div class="summaryTableTitle">Protected Methods</div>
<table id="summaryTableProtectedMethod" class="summaryTable " cellpadding="3" cellspacing="0">
<tr>
<th>&nbsp;</th><th colspan="2">Method</th><th class="summaryTableOwnerCol">Defined&nbsp;by</th>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#clipForMaxUndos()">clipForMaxUndos</a>():Boolean</div>
<div class="summaryTableDescription">
   Attempts to clip old commands that don't fit within the maxUndos limit.</div>
</td><td class="summaryTableOwnerCol">UndoRedoHistory</td>
</tr>
</table>
</div>
<a name="eventSummary"></a>
<div class="summarySection">
<div class="summaryTableTitle">Events</div>
<table id="summaryTableEvent" class="summaryTable " cellpadding="3" cellspacing="0">
<tr>
<th>&nbsp;</th><th colspan="2">Event</th><th>Summary</th><th class="summaryTableOwnerCol">Defined&nbsp;by</th>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#event:historyChanged">historyChanged</a>
</div>
</td><td class="summaryTableDescription summaryTableCol">&nbsp;</td><td class="summaryTableOwnerCol">UndoRedoHistory</td>
</tr>
</table>
</div>
<script type="text/javascript" language="javascript">
<!--
showHideInherited();
--></script>
<div class="MainContent">
<a name="propertyDetail"></a>
<div class="detailSectionHeader">Property detail</div>
<a name="cursorPosition"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">cursorPosition</td><td class="detailHeaderType">property</td>
</tr>
</table>
<div class="detailBody">
<code>protected var cursorPosition:int = 0</code><p>
   Retains the current position in the undo/redo history.  In general, this is the index
   at which the next command to be executed would be placed into the history array.
   If a user were to execute ten commands, then undo five of them, the cursor position
   would be 5 (0-based) and would indicate the index in the history array of the next
   redoable command or the index where a newly executed command would be placed.
   
   </p><p>
<span class="label">See also</span>
</p>
<div class="seeAlso">
<a href="nimbus/UndoRedoHistory.html#history" target="">history</a>
</div>
</div>
<a name="history"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">history</td><td class="detailHeaderType">property</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>protected var history:Array</code><p>
   Contains a history of commands that have been executed and are elegible for undo/redo.
   
   </p><p>
<span class="label">See also</span>
</p>
<div class="seeAlso">
<a href="nimbus/UndoRedoHistory.html#cursorPosition" target="">cursorPosition</a>
</div>
</div>
<a name="maxUndos"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">maxUndos</td><td class="detailHeaderType">property</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>maxUndos:uint</code>&nbsp;&nbsp;[read-write]<p>
   The maximum number of undoable commands that will be stored in the history.
   
   </p><p>The default value is <code>30</code>.</p>
<span class="label">Implementation</span>
<br>
<code>&nbsp;&nbsp;&nbsp;&nbsp;public function get maxUndos():uint</code>
<br>
<code>&nbsp;&nbsp;&nbsp;&nbsp;public function set maxUndos(value:uint):void</code>
<br>
</div>
<a name="redosAvailable"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">redosAvailable</td><td class="detailHeaderType">property</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>redosAvailable:uint</code>&nbsp;&nbsp;[read-only]<p>
   The number of commands currently available for redo.
   
   </p><p>The default value is <code>0</code>.</p>
<span class="label">Implementation</span>
<br>
<code>&nbsp;&nbsp;&nbsp;&nbsp;public function get redosAvailable():uint</code>
<br>
</div>
<a name="undosAvailable"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">undosAvailable</td><td class="detailHeaderType">property</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>undosAvailable:uint</code>&nbsp;&nbsp;[read-only]<p>
   The number of commands currently available for undo.
   
   </p><p>The default value is <code>0</code>.</p>
<span class="label">Implementation</span>
<br>
<code>&nbsp;&nbsp;&nbsp;&nbsp;public function get undosAvailable():uint</code>
<br>
</div>
<a name="methodDetail"></a>
<div class="detailSectionHeader">Method detail</div>
<a name="addCommand()"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">addCommand</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td>
</tr>
</table>
<div class="detailBody">
<code>public function addCommand(command:<a href="commands/base/IUndoableCommand.html">IUndoableCommand</a>):void</code><p>
   Called after a command has been executed by the controller and adds it to the undo
   history.
   
   </p><span class="label">Parameters</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20px"></td><td><code><span class="label">command</span>:<a href="commands/base/IUndoableCommand.html">IUndoableCommand</a></code> &mdash; The IUndoableCommand that was executed.
   </td>
</tr>
</table>
</div>
<a name="clipForMaxUndos()"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">clipForMaxUndos</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>protected function clipForMaxUndos():Boolean</code><p>
   Attempts to clip old commands that don't fit within the maxUndos limit.
   
   </p><p></p>
<span class="label">Returns</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20"></td><td><code>Boolean</code> &mdash; Boolean representing whether commands were clipped.
   </td>
</tr>
</table>
</div>
<a name="redo()"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">redo</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>public function redo():<a href="commands/base/IUndoableCommand.html">IUndoableCommand</a></code><p>
   Determines the next redoable command and performs a redo operation.
   
   </p><p></p>
<span class="label">Returns</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20"></td><td><code><a href="commands/base/IUndoableCommand.html">IUndoableCommand</a></code></td>
</tr>
</table>
<p>
<span class="label">See also</span>
</p>
<div class="seeAlso">
<a href="commands/base/ICommand.html#execute()" target="">nimbus.commands.base.ICommand.execute()</a>
</div>
</div>
<a name="undo()"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">undo</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>public function undo():<a href="commands/base/IUndoableCommand.html">IUndoableCommand</a></code><p>
   Determines the next undoable command and performs an undo operation.
   
   </p><p></p>
<span class="label">Returns</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20"></td><td><code><a href="commands/base/IUndoableCommand.html">IUndoableCommand</a></code></td>
</tr>
</table>
<p>
<span class="label">See also</span>
</p>
<div class="seeAlso">
<a href="commands/base/IUndoableCommand.html#undo()" target="">nimbus.commands.base.IUndoableCommand.undo()</a>
</div>
</div>
<div class="detailSectionHeader">Event detail</div>
<a name="event:historyChanged"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">historyChanged</td><td class="detailHeaderType">event&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<span class="label">Event object type: </span><a href="events/UndoRedoEvent.html"><code>nimbus.events.UndoRedoEvent</code></a>
<br>
<p></p>
</div>
<br>
<br>
<hr>
<br>
<p></p>
<center class="copyright"> 
</center>
</div>
</body>
</html>
<!-- -->
